1. Field of the Invention
The present invention relates in general to methods, computer systems, and physical computer storage media comprising a computer program product for organizing data into data structures.
2. Description of the Related Art
Computer software, or simply software, is a general term used to describe a collection of computer programs, procedures, and documentation that perform tasks in a computing environment. Computer software is generally stored on a computer data storage system, and computer data storage in the system is used by the software for a variety of purposes. For example, a file including information may be stored in a data storage system, and computer software may use information contained in the file.
Different types of computer software are developed to operate a computer system. For instance, system software, such as operating systems, interface with hardware to provide the necessary services for application software, middleware controls and coordinates distributed systems, and application software, such as word processors, perform productive tasks for users.
In the case of user interactive computer software such as application software, developers typically design the application according to a perception of how the user may interact with the application. For collection data type applications, such as List in Java, the developer predicts an expected usage by the user of the collected data. The developer then chooses a data structure for the expected usage and develops code (i.e., a concrete implementation) to implement functionality according to the chosen data structure.
In one example, LogRecords from a logfile are sorted by time stamp and thus, a list used to store the LogRecords is sorted by time stamp. The developer predicts that when the user wants to retrieve a particular entry from the list, the user will specify a time range to view including the time stamp of the particular entry. Accordingly, the developer organizes the list into a linked list data structure, an array backed list data structure or another type of data structure. Typically, the code organizing the list into the data structure is written such that the data structure is static.